#ifndef TOMOSIM_H
#define TOMOSIM_H

#include <QtGui/QMainWindow>
#include "ui_tomosim.h"
#include "Point3D.h"
#include "ParticleDistribution.h"
#include <QMessageBox>
#include <QFileDialog>
#include <QFileSystemModel>
#include <vtkDataObjectToTable.h>
#include <vtkElevationFilter.h>
#include <vtkPolyDataMapper.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkVectorText.h>
#include <vtkSmartPointer.h>
#include <vtkLight.h>
#include <vtkCamera.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkSphereSource.h>
#include <vtkCubeSource.h>
#include <vtkProperty.h>

#define VTK_CREATE(type, name) \
  vtkSmartPointer<type> name = vtkSmartPointer<type>::New()

class TomoSim : public QMainWindow
{
    Q_OBJECT

public:
    TomoSim(QWidget *parent = 0);
    ~TomoSim();
private slots:
	void on_actionOpen_File_triggered();
	void on_actionExit_triggered();
	void on_pushButton_clicked();
	void on_comboBox_currentIndexChanged(int index);
        void on_pushButton_2_clicked();
private:
    Ui::TomoSimClass ui;
    int num_cameras_;
    QList<vtkSmartPointer<vtkCamera> > cameras_;
    vtkSmartPointer<vtkLight> light_;
    ParticleDistribution* p_dist_;
    vtkSmartPointer<vtkRenderer> renderer_;
    vtkSmartPointer<vtkActor> tank_;
};

#endif // TOMOSIM_H
